import { stringify } from 'querystring';
import router from 'umi/router';
import { queryList } from '@/services/demo';
import { setAuthority } from '@/utils/authority';
import { getPageQuery } from '@/utils/utils';
const Demo = {
  namespace: 'demo',
  state: {
    listInfo: []
  },
  effects: {
    //异步方法,应该通常用于前后端交互
    *listFetch({payload}, {call, put}) {
      // 请求mock接口
      const response = yield call(queryList, payload);
      // dispatch转发action
      yield put({
        type: 'listRender',
        payload: response,
      });
    },
  },
  reducers: {
    //同步方法
    listRender(state, action) {
      // 拆出Demo中的state,并组合为一个新的state,覆盖当前Demo对象中的state
      return {...state, listInfo: action.payload || []};
    }
  },
  //触发器。setup表示初始化即调用。
  //正常使用的话,初始化的数据加载应该在组件挂载的时候执行
  // 其他用法见官方文档。https://github.com/sorrycc/blog/issues/62
  // subscriptions: {
  //   setup({dispatch}) {
  //     dispatch({type: 'listFetch'})
  //   }
  // }
};
export default Demo;
